package com.yvon.maple.service.system.vo;

import com.yvon.maple.enums.HttpMethodEnum;
import com.yvon.maple.pojo.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * @author : Yvon
 * @since : 2021-09-24
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("角色请求参数")
public class PermissionVO extends BaseVO implements Serializable {


    /**
     * 父id
     */
    @ApiModelProperty(value = "父id")
    private String parentId;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    private                                  String name;

    /**
     * 标识
     */
    @ApiModelProperty(value = "标识")
    private String code;

    /**
     * 菜单图标
     */
    @ApiModelProperty(value = "菜单图标")
    private String icon;

    /**
     * 组件
     */
    @ApiModelProperty(value = "组件")
    private String component;

    /**
     * 组件名字
     */
    @ApiModelProperty(value = "组件名字")
    private String componentName;

    /**
     * 路径
     */
    @ApiModelProperty(value = "路径")
    private String url;

    /**
     * 请求方式
     */
    @ApiModelProperty(value = "请求方式")
    private HttpMethodEnum method;

    /**
     * 一级菜单跳转地址
     */
    @ApiModelProperty(value = "一级菜单跳转地址")
    private String redirect;

    /**
     * 菜单排序
     */
    @ApiModelProperty(value = "菜单排序")
    private Double sortNo;

    /**
     * 类型（0：一级菜单；1：子菜单 ；2：按钮权限）
     */
    @ApiModelProperty(value = "类型（0：一级菜单；1：子菜单 ；2：按钮权限）")
    private Integer menuType;

    /**
     * 层级
     */
    @ApiModelProperty(value = "层级")
    private Integer level;

    /**
     * 是否路由菜单: 0:不是  1:是（默认值1）
     */
    @ApiModelProperty(value = "是否路由菜单: 0:不是  1:是（默认值1）")
    private Boolean route;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String description;

    /**
     * 是否隐藏路由菜单: 0否,1是（默认值0）
     */
    @ApiModelProperty(value = "是否隐藏路由菜单: 0否,1是（默认值0）")
    private Boolean hidden;


    /**
     * 按钮权限状态(0无效1有效)
     */
    @ApiModelProperty(value = "按钮权限状态(0无效1有效)")
    private Integer status;
}
